package io.codegenerate.core.annotations;

import java.lang.annotation.Documented;
import java.lang.annotation.ElementType;
import java.lang.annotation.Inherited;
import java.lang.annotation.Retention;
import java.lang.annotation.RetentionPolicy;
import java.lang.annotation.Target;

/**
 * 说明：用于标注字段名字前端说明和一些其他属性
 */
@Target({ElementType.FIELD,ElementType.TYPE}) 
@Retention(RetentionPolicy.RUNTIME) 
@Documented
@Inherited
public @interface Name {

	/**
	 * 说明：字段说明,用于生成表单 label
	 * @author jiaxf
	 * @param 
	 */
	String value() default "";
	
	/**
	 * 说明：用于生成 输入框 的 帮助说明,依赖 jquery tip 控件,生成到 html控件的tip 自定义属性上
	 * @author jiaxf
	 * @param 
	 */
	String tooltip() default "";
	/**
	 * 说明文字
	 * @return
	 */
	String descr() default "";
	/**
	 * 说明：用于生成 搜索输入框 的 帮助说明,依赖 jquery tip 控件,生成到 html控件的tip 自定义属性上
	 * @author jiaxf
	 * @param 
	 */
	String searchTooltip() default "";
	
	/**
	 * 说明：DOM 元素的类型,用于生成 DOM元素,默认生成input type="text".
	 * 当type=textarea 时,生成<textarea></textarea> 
	 * @param 
	 */
	DomType domType() default DomType.text;
	
	
	/**
	 * 说明：是否必填,用于生成 label前面的红色*号
	 * @author jiaxf 创建时间2013-3-12下午1:02:00
	 * @param 
	 */
	boolean required() default false;
	
	/**
	 * 说明：DOM 类型
	 */
	public static enum DomType{
		/**  文本输入框 */
		text,
		/**  textarea */
		texteara,
		/**  checckbox类型 */
		checkbox;
	}
	
}
